package com.pe.pgn.clubpgn.dao;

import java.util.List;
import java.util.Map;

import com.pe.pgn.clubpgn.domain.ClpbPromocionBono;
import com.pe.pgn.clubpgn.domain.ClpdRangoPromocion;
import com.pe.pgn.clubpgn.domain.ClprPromocionEstacion;
import com.pe.pgn.clubpgn.domain.beans.BNPromocionBono;
import com.pe.pgn.clubpgn.domain.beans.BNPromocionEstacion;

public interface PromocionBonoDao {

	public List<ClpbPromocionBono> listarPromocionesBono(boolean addItemDefault);

	public List<ClpbPromocionBono> buscarPromocionesBono(String dePromoBono,
			String iniVigencia, String finVigencia, String stPromoBono);

	public ClpbPromocionBono obtenerPromocionBono(Long idPromocionBono);

	public Map<String, Object> guardarPromocionBono(
			ClpbPromocionBono promocionBono);

	public int eliminarPromocionBono(Long id);

	public boolean validarTraslapePromoBono(ClpbPromocionBono promocionBono);

	public boolean validarMontoMinimo(ClpbPromocionBono promocionBono);

	public boolean validarDuplicidadDesc(ClpbPromocionBono promocionBono);

	public List<ClpdRangoPromocion> listarRangoPromocion(Long id);

	public int eliminarRangos(Long idRangoPromocion);

	public Map<String, Object> guardarRangos(String idPromocionBono, String vaConsumoInicio,
			String vaConsumoFin, String vaCantidad, String stEsRangoFinal);

	public boolean existeRangoFinal(String idPromocionBono);

	public boolean verificarSiTieneRangos(Long idPromocionBono);

	public boolean validarConsumoIniRangoFinal(String vaConsumoInicio,
			String idPromocionBono);

	public boolean validarNoMayorARangoFinal(String vaConsumoInicio,
			String vaConsumoFin, String idPromocionBono);

	public boolean validarRegistroConsecutivo(String vaConsumoInicio,
			String vaConsumoFin, String idPromocionBono, String stEsRangoFinal);

	public boolean validarNoUsanPromocionBono(Long id);

	public List<ClpbPromocionBono> listarPromocionesBonoVigentes(
			boolean addItemDefault);

	public int eliminarRangoEnAdelante(String idRangoPromocion,
			String idPromocionBono);

	public Map<String, Object> verificarSiEsRangoIntermedio(
			String idRangoPromocion, String idPromocionBono);

	public Map<String, Object> verificarPromocionEstaVigente(
			Long idPromocionBono);
	
	public BNPromocionBono obtenerBNPromocionBono(Long idPromocionBono);
	
	public List<BNPromocionEstacion> listadoBNEstacion(String numeros);
	
	public List<BNPromocionEstacion> listadoBNPromocionBono(Long idPromocionBono);
	
	public String getUpdate(ClprPromocionEstacion promocionEstacion);
	public String getInsert(ClprPromocionEstacion promocionEstacion);
	public String guardarPromocionBonoEstacion(List queries );
	
}
